At one time, the only commitment that network service providers and administrators were willing to make to their customers was that the customers' traffic would be sent through the network on a best-effort basis. Providers and administrators were unwilling to guarantee levels of network performance. For several reasons, customers began to demand network service better than best-effort service. One of those reasons was that customers were beginning to use the networks for applications critical to their businesses; i.e., for mission critical applications. Another of those reasons was that new time-critical applications began to emerge which required something beyond best-effort service for networked traffic. As an example, a growth in teleconferencing traffic increased the demand for a network service capable of delivering data that could provide smooth jitter-free audio and video images at multiple teleconferencing locations.
In an effort to satisfy customer demands for guaranteed levels of network service at a reasonable cost, Quality of Service (QoS) mechanisms were developed. Ideally, a Quality of Service guarantee is specific to the type of network traffic to which it is applied. For a telephony application, a QoS guarantee might be that data would reach its destination with no more than a specified maximum delay (latency). For a mission critical data application, a QoS guarantee might be that no frames would be dropped in transit to their intended destinations. In the following description, the terms packets and frames may be used interchangably to represent discrete units of information being transmitted through a network.
In theory, it is possible to tailor a QoS guarantee specific to every flow or connection established through a network to a particular destination. Realistically, large networks have too many concurrent flows to make such an approach practical. As a result, protocols have been developed that attempt to reduce flow complexity by mapping multiple flows into a few service levels. Network resources are allocated based on the service levels. Flows can be aggregated and forwarded according to the service class of each packet. Examples of such protocols include ATM (Asynchronous Transport Mode), Frame Relay and MPLS (Multi-Protocol Label Switching). This approach is referred to as a Class of Service approach. While a Class of Service approach may not be as flexible as a flow-specific QoS approach, Class of Service mechanisms place considerably fewer demands on network resources and thus are suitable for use in larger networks.
A typical example of a Class of Service mechanism is the recently ratified 802.1P IEEE standard for traffic prioritization. This standard defines how network packets can be assigned one of seven possible priority levels. Network devices, such as switches and routers, implementing this standard can prioritize traffic delivery according to the priority levels assigned to the network packets. Packets assigned higher priority levels are given precedence over packets with lower priority levels. Consequently, time-critical data can receive preferential treatment relative to data not considered to be time-critical.
The simplification achieved by a Class of Service approach does not come without problems. One such problem occurs where a network is used to distribute video signals, typically either in the course of teleconferencing or more recently in providing video-on-demand services. To assure that the reproduced video at a destination does not flicker, pause or simply go blank, digital video flows are normally assigned a high priority. However, video traffic may impose heavy demands on available network bandwidth and may also be highly bursty with intermittent, irregularly-occurring short term bandwidth requirements that far exceed any average or long term bandwidth requirements. Consequently, it can be assumed that routers or switches used to switch such traffic at nodes of telecommunications networks will intermittently become congested; that is, unable to cope with short term network requirements even where the long term or average network requirements are not excessive.
When congestion does occur, a single video traffic data stream may preempt all bandwidth available at a given output port of a switch or router, preventing the device from serving any other traffic intended for the same output port. This can result in the suppression of network control messages which, although not ordinarily considered high priority or requiring the use of much network bandwidth, may play a crucial role in the execution of network management tasks needed to prevent the kind of congestion just mentioned.
While, as a general class, video traffic needs to be given high priority to avoid excess latency, there can be differences among video packets, even those intended for the same destination. Different specific types of video packets may be more or less important in reconstructing a video image at its destination. For example, an MPEG (Motion Picture Experts Group) standard available from ISO (International Standards Organization) specifies schemes for compression, transmission and decompression of video signals. The MPEG compression scheme can reduce transmitted video by a factor of 6 to 30 times by recognizing that a considerable amount of video information is repeated on a frame-by-frame basis. Data compression is achieved by not retransmitting portions of video image which don't change from one frame to the next. A video image is broken down into a number of a pel-by-pel regions called blocks. Four blocks are joined to create a 16 by 16 macroblock. Macroblocks which are not changed from one frame to the next are not re-encoded in subsequent frames. Runs of macro blocks are called slices. Typically, an entire video frame can be reconstructed from slices. Because each slice begins with a unique header, the slice structure allows a receiver to be re-synchronized at the beginning of the slice if data has become corrupted.
To avoid the propagation of errors and to allow periodic resynchronization of the video signals, the MPEG standard defines one type of video frame, an I-frame, which is a complete frame (one that does not rely on information from other frames) that is transmitted approximately once every 12 frames. The MPEG standard also defines P-frames, which rely on information received in previous frames in order to fully define a video image, and B-frames, use information found in both preceding and following frames, in order to fully define a video image. Motion vectors can be encoded to permit portions of a picture that move from one frame to the next to be used in recreating images from B-frames.
It is clear from even this brief overview of MPEG frames that not all of the transmitted frames of a video flow are equally important in reconstructing a video image at its intended destination. I-frames deserve the highest priority since they enable periodic resynchronization. Decoders which receive MPEG video signals can accommodate some loss or delay of P-frames and B-frames without causing any noticeable degradation in the quality of a reconstructed image.
Comparable schemes are defined by an existing H.261 videoconferencing standard and in GSM (Global System for Mobile Communication) specifications promoted by the GSM Association located in Dublin, Ireland.
A traditional class of service approach to traffic management may not be optimal for encoding schemes of the type described above. Under a traditional class of service approach, all of the packets in a given flow are assigned the same priority level, necessarily the priority level needed for the most critical of the packets in the flow. As a result, the packets in a particular flow may preempt the bandwidth available at an output port of a network device even that some of the packets may not be critical to operations to be performed at the flow's destination.